home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume12 / musbus5.2 / part02 < prev    next >
Encoding:
Internet Message Format  |  1988-03-01  |  34.3 KB

  1. Subject:  v12i073:  MUSBUS 5.2 Upgrade, Part02/03
  2. Newsgroups: comp.sources.unix
  3. Approved: kre@munnari.oz.au
  4.  
  5. Submitted by: kenj@moncsbruce.oz (Ken McDonell)
  6. Posting-number: Volume 12, Issue 73
  7. Archive-name: musbus5.2/Part02
  8.  
  9. #! /bin/sh
  10. # This is a shell archive, meaning:
  11. # 1. Remove everything above the #! /bin/sh line.
  12. # 2. Save the resulting text in a file.
  13. # 3. Execute the file with /bin/sh (not csh) to create the files:
  14. #    update.021
  15. #    update.022
  16. #    update.023
  17. #    update.024
  18. #    update.025
  19. #    update.026
  20. #    update.027
  21. #    update.028
  22. #    update.029
  23. #    update.030
  24. #    update.031
  25. #    update.032
  26. # This archive created: Tue Jan 19 08:36:41 EST 1988
  27. export PATH; PATH=/bin:$PATH
  28. echo 'x - update.021'
  29. if test -f 'update.021'
  30. then
  31.     echo 'shar: over-writing existing file update.021'
  32. fi
  33. sed 's/^X//' > update.021 <<'End-of-File-Grunt'
  34. X1c1
  35. X< # Note: undocumented sed feature, use # for comments $Header: check.sed,v 3.9 87/09/09 12:33:08 kenj Exp $
  36. X---
  37. X> # Note: undocumented sed feature, use # for comments $Header: check.sed,v 5.2 87/12/09 09:47:24 kenj Exp $
  38. X8c8
  39. X< /^clone [0-9][0-9]* [0-9][0-9]* pid [0-9]*$/d
  40. X---
  41. X> /^clone [0-9][0-9]* pid [0-9][0-9]*$/d
  42. X10,11c10
  43. X< /^clone [0-9][0-9]* done, pid [0-9][0-9]* $/d
  44. X< s/ [0-9][0-9]*$//
  45. X---
  46. X> /^clone done, pid [0-9][0-9]* $/d
  47. End-of-File-Grunt
  48. if test 440 -ne `cat 'update.021' | wc -c`
  49. then
  50.     echo 'shar: transmission error (expected 440 characters)'
  51. fi
  52. echo 'x - update.022'
  53. if test -f 'update.022'
  54. then
  55.     echo 'shar: over-writing existing file update.022'
  56. fi
  57. sed 's/^X//' > update.022 <<'End-of-File-Grunt'
  58. X1c1
  59. X< # $Header: fs.awk,v 3.4 87/06/22 14:27:32 kjmcdonell Beta $
  60. X---
  61. X> # $Header: fs.awk,v 5.1 87/09/25 04:49:51 kenj Exp $
  62. X2a3,5
  63. X> /user/    { next }
  64. X> /sys/    { next }
  65. X> /^$/    { next } 
  66. End-of-File-Grunt
  67. if test 183 -ne `cat 'update.022' | wc -c`
  68. then
  69.     echo 'shar: transmission error (expected 183 characters)'
  70. fi
  71. echo 'x - update.023'
  72. if test -f 'update.023'
  73. then
  74.     echo 'shar: over-writing existing file update.023'
  75. fi
  76. sed 's/^X//' > update.023 <<'End-of-File-Grunt'
  77. X1c1
  78. X< # $Header: mem.awk,v 3.4 87/06/22 14:27:39 kjmcdonell Beta $
  79. X---
  80. X> # $Header: mem.awk,v 5.1 87/09/25 04:49:09 kenj Exp $
  81. X2a3,5
  82. X> /user/    { next }
  83. X> /sys/    { next }
  84. X> /^$/    { next } 
  85. End-of-File-Grunt
  86. if test 185 -ne `cat 'update.023' | wc -c`
  87. then
  88.     echo 'shar: transmission error (expected 185 characters)'
  89. fi
  90. echo 'x - update.024'
  91. if test -f 'update.024'
  92. then
  93.     echo 'shar: over-writing existing file update.024'
  94. fi
  95. sed 's/^X//' > update.024 <<'End-of-File-Grunt'
  96. X2c2,3
  97. X< # $Header: Makefile,v 3.18 87/09/17 06:35:58 kenj Exp $
  98. X---
  99. X> # $Header: Makefile,v 5.2 87/12/14 10:21:29 kenj Exp $
  100. X> SHELL = /bin/sh
  101. X3a5,7
  102. X> WORKDIR=Workload
  103. X> # Note: the macro $(WORKDIR) may be imported to this Makefile, probably from
  104. X> #    the environment or the command line.
  105. X12,14c16,18
  106. X< DATAFILES = BSDtime.awk Groan Intro.nr SysVtime.awk \
  107. X<     check.sed cleanup dc.dat fs.awk mem.awk \
  108. X<     mkscript run time.awk README
  109. X---
  110. X> DATAFILES = BSDtime.awk Intro.nr SysVtime.awk \
  111. X>     check.sed dc.dat fs.awk mem.awk \
  112. X>     time.awk README musbus.1
  113. X19c23,24
  114. X<     mkdistrib mkinstall musbus.1
  115. X---
  116. X>     MAKE mkdistrib mkinstall mkscript mkscript.out fixPATH \
  117. X>     run signature cleanup Groan progress qhisto
  118. X21,24c26,27
  119. X<     mk1 mk2 mkcomp mktbl tbl.1 tbl.2 tbl.3 tbl.4 tbl.5 
  120. X< WORKS = Makefile,1 cat.dat dummy.c edit.dat edscr1.dat edscr2.dat \
  121. X<     grep.dat mkprofile mkscript.out script.master
  122. X< MANIFESTS = Workload.files Results.files Tools.files
  123. X---
  124. X>     mk1 mk2 mkcomp mktbl tbl.1 tbl.2 tbl.3 tbl.4 tbl.5
  125. X> MANIFESTS = $(WORKDIR).mf Tools.mf
  126. X27,28c30,32
  127. X<     Workload/mkprofile Workload/mkscript.out \
  128. X<     Groan cleanup mkdistrib mkinstall mkscript run
  129. X---
  130. X>     MAKE mkdistrib mkinstall mkscript mkscript.out fixPATH \
  131. X>     run signature cleanup Groan progress qhisto
  132. X> 
  133. X30a35
  134. X> install:    Tools/Adjust    # pick any old one!
  135. X32,33c37,40
  136. X< install:
  137. X<     @chmod 755 mkinstall
  138. X---
  139. X> Tools/Adjust:
  140. X>     make unpack
  141. X> unpack: source $(MANIFESTS)
  142. X>     @chmod 555 mkinstall
  143. X35,36c42,45
  144. X<     @chmod 755 $(XSCRIPTS)
  145. X< unrcs:    $(SOURCES) $(DATAFILES) $(TOOLS) $(WORKS) $(MANIFESTS)
  146. X---
  147. X>     -@chmod 555 $(XSCRIPTS)
  148. X> unrcs:    $(SOURCES) $(DATAFILES)
  149. X>     @chmod 555 MAKE
  150. X>     ./MAKE context
  151. X38c47
  152. X< script:    Tmp Tmp/script.1 Tmp/script.out
  153. X---
  154. X> scripts:    Tmp Tmp/script.1
  155. X91,98c100,105
  156. X< Tmp/script.1:     Workload/script.master mkperm mkscript
  157. X<     ./mkscript 4 Workload/script.master
  158. X<     rm -f Tmp/script.[1-4]
  159. X<     mv script.[1-4] Tmp
  160. X< Tmp/script.out:     Workload/script.master
  161. X<     cd Workload ; make script.out
  162. X<     rm -f Tmp/script.out
  163. X<     mv Workload/script.out Tmp
  164. X---
  165. X> Tmp/script.1:    mkperm
  166. X>     cd $(WORKDIR) ; make scripts
  167. X>     rm -f Tmp/script.[0-9]* Tmp/script.out
  168. X>     cp $(WORKDIR)/script.[0-9]* $(WORKDIR)/script.out Tmp
  169. X> time.awk:    BSDtime.awk    # Note BSD system assumed
  170. X>     ln BSDtime.awk time.awk
  171. X106,110c113,119
  172. X<     chmod 444 *.c *.awk
  173. X<     cd Work ; chmod 444 *.c *.dat script.* workload
  174. X<     chmod 444 Intro.nr Makefile check.sed
  175. X<     chmod 555 Config Groan cleanup run 
  176. X< clean:    Tmp
  177. X---
  178. X>     chmod 444 $(SOURCES) $(DATAFILES)
  179. X>     chmod 444 */*.c */*.dat */script.master */Makefile
  180. X>     chmod 555 $(XSCRIPTS)
  181. X>     ./MAKE modes
  182. X> clean:    clean_x Tmp
  183. X>     ./MAKE clean
  184. X> clean_x:
  185. X112,115c121,125
  186. X<     @cd Tmp ; /bin/rm -f masterlog.* userlog.* loggederrs
  187. X< purge:    clean
  188. X<     @/bin/rm -f *.o core a.out ${PROGS}
  189. X<     @cd Tmp ; /bin/rm -rf *
  190. X---
  191. X>     @cd Tmp ; /bin/rm -f masterlog.* userlog.* loggederrs log.groan nogroan
  192. X> purge:    clean_x
  193. X>     /bin/rm -f *.o core a.out ${PROGS}
  194. X>     cd Tmp ; /bin/rm -rf *
  195. X>     ./MAKE purge
  196. End-of-File-Grunt
  197. if test 2950 -ne `cat 'update.024' | wc -c`
  198. then
  199.     echo 'shar: transmission error (expected 2950 characters)'
  200. fi
  201. echo 'x - update.025'
  202. if test -f 'update.025'
  203. then
  204.     echo 'shar: over-writing existing file update.025'
  205. fi
  206. sed 's/^X//' > update.025 <<'End-of-File-Grunt'
  207. X2c2,3
  208. X< .\" $Header: Intro.nr,v 3.12 87/09/16 07:24:45 kenj Exp $
  209. X---
  210. X> .\" $Header: Intro.nr,v 5.2 87/12/17 07:16:10 kenj Exp $
  211. X> .\" $Compile: typeset %f
  212. X43c44
  213. X< \\fI\\$1\\fP\\$2
  214. X---
  215. X> \&\fI\\$1\fP\\$2
  216. X46c47
  217. X< \\fB\\$1\\fP\\$2
  218. X---
  219. X> \&\fB\\$1\fP\\$2
  220. X56c57
  221. X< \\fI$\\$1\\fP\\$2
  222. X---
  223. X> \&\fI$\\$1\fP\\$2
  224. X73c74
  225. X< .IP "\fIShell Variable:\fP \\fB\\$1\\fP  (default: \\$2)"
  226. X---
  227. X> .IP "\fIShell Variable:\fP \fB\\$1\fP  (default: \\$2)"
  228. X77c78
  229. X< .IP "\fITest Name:\fP \\fB\\$1\\fP"
  230. X---
  231. X> .IP "\fITest Name:\fP \fB\\$1\fP"
  232. X114c115
  233. X< ACSnet: kenj@moncskermit.oz
  234. X---
  235. X> Internet: kenj@moncsbruce.oz.AU
  236. X116,118c117
  237. X< USENET: seismo!munnari!moncskermit.oz!kenj
  238. X< .br
  239. X< ARPA: kenj%moncskermit.oz@seismo.arpa
  240. X---
  241. X> USENET: uunet!munnari!moncsbruce.oz!kenj
  242. X120c119
  243. X< Revised: 16 September, 1987
  244. X---
  245. X> Revised: 15 December, 1987
  246. X154c153
  247. X< This document provides an overview for \fBVersion\fP \fB5.0\fP of MUSBUS
  248. X---
  249. X> This document provides an overview for \fBVersion\fP \fB5.2\fP of MUSBUS
  250. X182a182
  251. X> .PR pr
  252. X188a189
  253. X> .PR umask
  254. X214,215c215,216
  255. X< .FL Workload ,
  256. X< descriptions of the workload profile, all associated data files and some
  257. X---
  258. X> .FL Work* ,
  259. X> descriptions for assorted workload profiles, all associated data files and some
  260. X221a223,224
  261. X> or
  262. X> .SC "./mkinstall"
  263. X224c227
  264. X< as required.
  265. X---
  266. X> the controlling command procedure as required.
  267. X307a311,316
  268. X> The
  269. X> .FL Makefiles
  270. X> in the workload directories
  271. X> .FL Work*
  272. X> may also need to be similarly tuned to match the local environment.
  273. X> .LP
  274. X317a327,336
  275. X> Select the appropriate workload description directory
  276. X> (see Section 4 for hints
  277. X> on tailoring your own description), and if this is other than
  278. X> .FL Workload
  279. X> (the default), ensure that the environment
  280. X> variable
  281. X> .SV workdir
  282. X> is set, e.g.
  283. X> .SC "workdir=Work_mystuff ; export workdir"
  284. X> .LP
  285. X375c394,395
  286. X< Output sent to ... /dev/ttyp0
  287. X---
  288. X> Current directory:  /usr/kenj/musbus
  289. X> Output sent to ... /dev/ttyi04
  290. X383d402
  291. X< /dev/hp1a    \07419    \04169    \02508    62%    /jnk
  292. X385d403
  293. X< /dev/hp1g    38383    32579    \01965    94%    /mnt
  294. X389a408,416
  295. X> ****
  296. X> * Common Distributed Workload for a C Program Development Environment
  297. X> *  Workload script profile: shell=/bin/sh
  298. X> *  23 commands (header:1 & trailer:1)
  299. X> * freq  command     freq  command     freq  command     freq  command
  300. X> *    7  :           4  rm         2  cc           2  chmod
  301. X> *    2  cp           2  ed         1  cat           1  grep
  302. X> *    1  ls           1  mkdir
  303. X> ****
  304. X427a455,458
  305. X> the optional command procedure
  306. X> .SV workdir /\c
  307. X> .PR cleanstderr ,
  308. X> followed by
  309. X436c467,468
  310. X< .FL check.sed
  311. X---
  312. X> .SV workdir /\c
  313. X> .PR cleanstderr
  314. X442a475,478
  315. X> .FL check.sed
  316. X> should not have to be altered since this deals with
  317. X> expected standard error output that is \fIindependent\fP of the multi-user
  318. X> workload.
  319. X480c516
  320. X< When possible, an idle system in mult-iuser mode is
  321. X---
  322. X> When possible, an idle system in multi-user mode is
  323. X500c536
  324. X< A designated test may by run using the command
  325. X---
  326. X> A designated test may be run using the command
  327. X616c652
  328. X< This test is due to John Lions (University of New South Wales) who
  329. X---
  330. X> This test is due to Chris Maltby (Softway Pty Ltd, Sydney) who
  331. X750c786
  332. X< where the simulated tty output is sent -- there is a lot of this, and
  333. X---
  334. X> where the simulated tty output is sent -- there may be a lot of this, and
  335. X764a801,805
  336. X> .VA nscripts 4
  337. X> Number of workload scripts to be constructing from permutations
  338. X> of the master script.
  339. X> .VA workdir Workload
  340. X> Directory containing the workload profile descriptions and data files.
  341. X773,822d813
  342. X< The synthetic workload is created from a number of job streams, each
  343. X< of which is described by a line in the file
  344. X< .FL Tmp/workload .
  345. X< Each line consists of
  346. X< .IP \(bu
  347. X< the home directory for the job stream,
  348. X< .IP \(bu
  349. X< the full pathname of the program to run,
  350. X< .IP \(bu
  351. X< optional arguments to that program,
  352. X< .IP \(bu
  353. X< an optional source
  354. X< of standard input to that program (a filename prefixed by ``<''), and
  355. X< .IP \(bu
  356. X< an optional destination
  357. X< for standard output from that program (a filename prefixed by ``>'').
  358. X< .LP
  359. X< .FL Tmp/workload
  360. X< is created automatically by the command script
  361. X< .PR run
  362. X< based upon
  363. X< .IP (a)
  364. X< the variables
  365. X< .SV dirs
  366. X< and
  367. X< .SV ttys , and
  368. X< .IP (b)
  369. X< the workload profile
  370. X< .FL Workload/script.master
  371. X< from which the script interpreter program name is extracted
  372. X< and the individual input script files (\c
  373. X< .FL Tmp/script.? ).
  374. X< .LP
  375. X< When
  376. X< .FL Tmp/workload
  377. X< is constructed, a cyclic scheme
  378. X< is used to share user work amongst the
  379. X< available directories and tty lines (as per
  380. X< .SV dirs
  381. X< and
  382. X< .SV ttys ).
  383. X< In this way, serial i/o bottlenecks for large numbers of simulated
  384. X< users, and unbalanced disk i/o across spindles may be avoided.
  385. X< As a dynamic check, the program
  386. X< .PR ttychk
  387. X< is used within
  388. X< .PR run
  389. X< to check for potential bandwidth limitations on the serial i/o
  390. X< lines, given the number of lines and the maximum number of job streams.
  391. X< .LP
  392. X824c815,816
  393. X< .FL Workload/script.master )
  394. X---
  395. X> .SV workdir /\c
  396. X> .FL script.master )
  397. X848a841,843
  398. X> .IP 5.
  399. X> Lines beginning with a single ``%'' are treated as comments and stripped
  400. X> from the scripts.
  401. X854,857c849,857
  402. X< are used (by
  403. X< .PR run )
  404. X< to create several (usually 4) scripts from
  405. X< .FL Workload/script/master
  406. X---
  407. X> are used (in
  408. X> .SV workdir /\c
  409. X> .FL Makefile )
  410. X> to create several
  411. X> (i.e. \c
  412. X> .SV nscripts )
  413. X> scripts from
  414. X> .SV workdir /\c
  415. X> .FL script.master
  416. X860,863c860,865
  417. X< These scripts reside in
  418. X< .FL Tmp/script.?
  419. X< and are assigned in a cyclic manner to create the job streams.
  420. X< The work for \fBeach\fP
  421. X---
  422. X> These scripts are initially created in
  423. X> .SV workdir ,
  424. X> then copied as required to
  425. X> .FL Tmp/script.?  .
  426. X> The scripts are assigned in a cyclic manner to create the job streams
  427. X> so that the work for \fBeach\fP
  428. X865c867,868
  429. X< \fBone\fP job stream.
  430. X---
  431. X> \fBone\fP job stream, although several job streams may be
  432. X> based on the same script.
  433. X875a879,880
  434. X> PATH=XXX:$PATH
  435. X> export PATH
  436. X878,884c883
  437. X< \&./keyb edscr1.dat | ed edit.dat
  438. X< : .......................................................
  439. X< : .    This is some filler of about the same            .
  440. X< : .    size as the file edscr1.dat, since the           .
  441. X< : .    emulated input proceeds in parallel, and         .
  442. X< : .    we want the real-time delay to be about right    .
  443. X< : .......................................................
  444. X---
  445. X> keyb edscr1.dat | ed edit.dat
  446. X896,897c895
  447. X< \&./keyb edscr2.dat | ed dummy.c
  448. X< : .  more textual and time filler for the second edscript file, edscr2.dat .
  449. X---
  450. X> keyb edscr2.dat | ed dummy.c
  451. X912c910
  452. X< .FL Tmp/script.1 )
  453. X---
  454. X> .FL Workload/script.1 )
  455. X918c916,918
  456. X< .CK Tmp/script.1
  457. X---
  458. X> .CK Workload/script.1
  459. X> PATH=/mnt/kenj/Src/musbus:$PATH
  460. X> export PATH
  461. X922,928c922,927
  462. X< \&./keyb edscr1.dat | ed edit.dat
  463. X< : .......................................................
  464. X< : .    This is some filler of about the same            .
  465. X< : .    size as the file edscr1.dat, since the           .
  466. X< : .    emulated input proceeds in parallel, and         .
  467. X< : .    we want the real-time delay to be about right    .
  468. X< : .......................................................
  469. X---
  470. X> keyb edscr1.dat | ed edit.dat
  471. X> : +00000+ FILLER Mary had a little lamb, its fleece was white as snow
  472. X> : +00070+ FILLER Mary had a little lamb, its fleece was white as snow
  473. X> : +00140+ FILLER Mary had a little lamb, its fleece was white as snow
  474. X> : +00210+ FILLER Mary had a little lamb, its fleece was white as snow
  475. X> : +00339+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  476. X934,935c933,935
  477. X< \&./keyb edscr2.dat | ed dummy.c
  478. X< : .  more textual and time filler for the second edscript file, edscr2.dat .
  479. X---
  480. X> keyb edscr2.dat | ed dummy.c
  481. X> : +00000+ FILLER Mary had a little lamb, its fleece was white as snow
  482. X> : +00076+ 
  483. X945a946,1013
  484. X> Note that
  485. X> .PR mkscript
  486. X> knows that the program
  487. X> .PR keyb
  488. X> is used to simulate a user typing input to an interactive program, and so
  489. X> .PR mkscript
  490. X> adds filler text (of the same size as the
  491. X> .PR keyb
  492. X> input file) into the script as comments (i.e. ``FILLER Mary had a little
  493. X> lamb, ...'') to approximate the corresponding real-time delay to
  494. X> the shell's rate of command execution while at the same time
  495. X> .PR keyb
  496. X> is pumping the same volume of input to the interactive command.
  497. X> .LP
  498. X> The synthetic workload for each simulated user is
  499. X> described by a line in the file
  500. X> .FL Tmp/workload .
  501. X> Each line consists of
  502. X> .IP \(bu
  503. X> the home directory for the job stream,
  504. X> .IP \(bu
  505. X> the full pathname of the interpreter to run,
  506. X> .IP \(bu
  507. X> optional arguments to that program,
  508. X> .IP \(bu
  509. X> an optional source
  510. X> of standard input to that program,
  511. X> i.e. a script file (a filename prefixed by ``<''), and
  512. X> .IP \(bu
  513. X> an optional destination
  514. X> for standard output from that program (a filename prefixed by ``>'').
  515. X> .LP
  516. X> .FL Tmp/workload
  517. X> is created automatically by the command script
  518. X> .PR run
  519. X> based upon
  520. X> .IP 1.
  521. X> the variables
  522. X> .SV dirs
  523. X> and
  524. X> .SV ttys , and
  525. X> .IP 2.
  526. X> the workload profile
  527. X> .SV workdir /\c
  528. X> .FL script.master
  529. X> from which the script interpreter program name is extracted,
  530. X> and
  531. X> .IP 3.
  532. X> the individual input script files (\c
  533. X> .FL Tmp/script.? ).
  534. X> .LP
  535. X> When
  536. X> .FL Tmp/workload
  537. X> is constructed, a cyclic scheme
  538. X> is used to share user work amongst the
  539. X> available scripts, directories and tty lines (as per
  540. X> .SV dirs
  541. X> and
  542. X> .SV ttys ).
  543. X> In this way, serial i/o bottlenecks for large numbers of simulated
  544. X> users, and unbalanced disk i/o across spindles may be avoided.
  545. X> As a dynamic check, the program
  546. X> .PR ttychk
  547. X> is used within
  548. X> .PR run
  549. X> to check for potential bandwidth limitations on the serial i/o
  550. X> lines, given the number of lines and the maximum number of job streams.
  551. X> .LP
  552. X949c1017
  553. X< nusers=8
  554. X---
  555. X> nusers=7
  556. X951a1020
  557. X> nscripts=4
  558. X968d1036
  559. X< /usr/tmp/user8 /bin/sh -ie <Tmp/script.4 >/dev/ttyh8
  560. X973,1014d1040
  561. X< It is strongly recommended that you create your own workload
  562. X< profile for the multi-user test to reflect the anticipated
  563. X< system usage.
  564. X< To do this,
  565. X< .IP 1.
  566. X< Use the distributed files in the
  567. X< .FL Workload
  568. X< directory as a guide.
  569. X< .IP 2.
  570. X< Create a new
  571. X< .FL Workload/script.master
  572. X< describing the required job steps.
  573. X< .IP 3.
  574. X< Ensure all required data files are in the
  575. X< .FL Workload
  576. X< directory, because every job stream executes with the current
  577. X< directory containing its own private copies of \f3all\fP the
  578. X< files from
  579. X< .FL Workload .
  580. X< .IP 4.
  581. X< Ensure the makefile (\c
  582. X< .FL Workload/Makefile )
  583. X< has the following targets defined (they are assumed to exist by
  584. X< .PR run ).
  585. X< .RS
  586. X< .nr II 6n
  587. X< .IP (a)
  588. X< context : ensure all files needed to run a script are present.
  589. X< .IP (b)
  590. X< clean : remove any unnecessary temporary files, e.g. those created from
  591. X< somewhere else during a ``make context''.
  592. X< .IP (c)
  593. X< script.out : run a script and trap all the output; the file
  594. X< .FL script.out
  595. X< should contain the concatenation of the script input and the
  596. X< script output.
  597. X< This file is used by
  598. X< .PR ttychk
  599. X< to compute the output tty bandwidth requirements.
  600. X< .RE
  601. X< .nr II 0
  602. X< .LP
  603. X1025c1051,1062
  604. X< starts the user program(s) (\c
  605. X---
  606. X> .IP 1.
  607. X> redirects all standard i/o streams (\fIstdin\fP to a pipe,
  608. X> \fIstdout\fP to a terminal, and \fIstderr\fP to the file
  609. X> .FL Tmp/userlog.nnn ),
  610. X> .IP 2.
  611. X> changes current directory,
  612. X> .IP 3.
  613. X> creates the file
  614. X> .FL USER
  615. X> whose contents are the ordinal simulated user number,
  616. X> .IP 4.
  617. X> starts the designated command interpreter (\c
  618. X1027,1028c1064,1067
  619. X< above) and pumps
  620. X< random chunks of input to them down pipes
  621. X---
  622. X> above), and
  623. X> .IP 5.
  624. X> pumps random chunks of input to the command
  625. X> interpreter down pipes
  626. X1055c1094
  627. X< .PR /bin/ed .
  628. X---
  629. X> the interactive programs.
  630. X1071a1111,1119
  631. X> If the environment variable
  632. X> .SV tty
  633. X> is undefined or assigned to the null string "",
  634. X> .PR keyb
  635. X> will not echo any of its input; this is useful when the output from
  636. X> .PR keyb
  637. X> is going to a program that turns tty driver echoing off and handles
  638. X> all of its own echo processing, e.g. \c
  639. X> .PR vi .
  640. X1088c1136
  641. X< should be nearly the same for all users in a given run (although
  642. X---
  643. X> should be nearly the same for all simulated users in a given run (although
  644. X1095c1143
  645. X< and shell error output from the simulated user work.
  646. X---
  647. X> and unexpected shell error output from the simulated user work.
  648. X1100,1102d1147
  649. X< This should consist of a row of ``# ''s (assuming root's 
  650. X< .PR /bin/sh
  651. X< prompt is ``# '').
  652. X1112a1158,1162
  653. X> Insufficient user work specifications in the workload file
  654. X> cannot open input file "%s"
  655. X> makework: internal snark -- code is broken!
  656. X> makework: bad rate, reset to %.2f chars/sec
  657. X> makework: cannot open copy file '%s'
  658. X1113a1164,1165
  659. X> makework: missing nusers
  660. X> makework: impossible nusers (%d<-%s)
  661. X1115,1121c1167,1175
  662. X< user %d job %d pid %d done exit code %d
  663. X< user %d job %d pid %d done status 0x%x
  664. X< user %d job %d pid %d done exit code %d status 0x%x
  665. X< clone %d done, pid %d exit code %d
  666. X< clone %d done, pid %d status 0x%x
  667. X< clone %d done, pid %d exit code %d status 0x%x
  668. X< user %d job %d pid %d killed off
  669. X---
  670. X> makework: creat "USER" failed for user %d
  671. X> write(,,%d) returns %d
  672. X> user %d pid %d done status %d
  673. X> user %d pid %d done exit code %d
  674. X> user %d pid %d done exit code %d status %d
  675. X> clone done, pid %d exit code %d
  676. X> clone done, pid %d status %d
  677. X> clone done, pid %d exit code %d status %d
  678. X> user %d pid %d killed off
  679. X1131a1186,1187
  680. X> *** New Run ***
  681. X> makework: typing rate reset to %.2f chars/sec
  682. X1134,1136c1190,1193
  683. X< user %d job %d pid %d pipe fd %d
  684. X< user %d job %d pid %d done
  685. X< clone %d done, pid %d
  686. X---
  687. X> user %d master stream %d pid %d pipe fd %d >%s
  688. X> user %d clone %d stream %d pid %d pipe fd %d >%s
  689. X> user %d pid %d done
  690. X> clone done, pid %d
  691. X1149c1206,1214
  692. X< .NH 4 "The Complete Test"
  693. X---
  694. X> .TN arithmetic
  695. X> Run all the arithmetic group of raw speed tests, i.e. like
  696. X> \&``run arithoh register short int long float double dc''.
  697. X> .TN system
  698. X> Run the system-related group of speed tests, i.e. like
  699. X> \&``run syscall pipe context1 spawn execl fstime''.
  700. X> .TN speed
  701. X> Run everything from the ``arithmetic'' and ``system'' groups.
  702. X> .NH 4 "Creating Your Own Multi-user Workload Description"
  703. X1150a1216,1339
  704. X> Several synthetic workloads for the multi-user test are included in
  705. X> the distribution.
  706. X> However a particular installation is unlikely to have a
  707. X> user community whose pattern of interaction matches
  708. X> any one of these workloads.
  709. X> .LP
  710. X> Consequently, it is strongly recommended that you create your own workload
  711. X> profile for the multi-user test to reflect your anticipated
  712. X> system usage.
  713. X> To do this,
  714. X> .IP 1.
  715. X> Use the distributed files in the
  716. X> .FL Work*
  717. X> directories as a guide.
  718. X> .IP 2.
  719. X> Create a new directory, e.g. \c
  720. X> .FL Work_local .
  721. X> .IP 3.
  722. X> Create a new
  723. X> .FL Work_local/script.master
  724. X> (see Section 3.2 for the format specifications)
  725. X> describing the required job steps.
  726. X> .IP 4.
  727. X> Ensure all required data files are either included in the
  728. X> .FL Work_local
  729. X> directory, or readily accessible (see comments on ``make manifest'' below).
  730. X> .IP 5.
  731. X> Ensure the makefile (\c
  732. X> .FL Work_local/Makefile )
  733. X> has the following targets defined (they are assumed to exist by
  734. X> .PR run ).
  735. X> .RS
  736. X> .nr II 6n
  737. X> .IP (a)
  738. X> \fBscripts\fP : create
  739. X> .FL script.?
  740. X> from
  741. X> .FL script.master ,
  742. X> typically by using the command procedure
  743. X> .PR ../mkscript .
  744. X> The command procedure
  745. X> .PR ../fixPATH
  746. X> may also be used at this juncture to edit the
  747. X> .FL script.?
  748. X> files by locating lines of the form ``PATH=XXX:...'' and replacing
  749. X> the string ``XXX'' by the full pathname of the parent directory ``..''
  750. X> (\c
  751. X> .PR ../fixPATH\ -w
  752. X> is a variant that also adds the full pathname of the workload directory, ``.'').
  753. X> In this way, MUSBUS programs (e.g. \c
  754. X> .PR keyb
  755. X> or some of the raw speed tests)
  756. X> and/or workload specific programs can be included in
  757. X> .FL script.master
  758. X> \fIwithout\fP requiring that all the executables be in the current directory
  759. X> of each simulated user.
  760. X> Use the command procedure
  761. X> .PR ../mkscript.out
  762. X> to run the designated workload command interpreter with
  763. X> .FL script.1
  764. X> as its standard input
  765. X> trapping all the output; the file
  766. X> .FL script.out
  767. X> should contain the concatenation of the script input and the
  768. X> script output.
  769. X> This file is used by
  770. X> .PR ttychk
  771. X> to compute the output tty bandwidth requirements.
  772. X> .IP (b)
  773. X> \fBcontext\fP :
  774. X> ensure all executable programs and
  775. X> files needed to run a script are present, then
  776. X> start any necessary background tasks.
  777. X> .IP (c)
  778. X> \fBmainfest\fP : echo the names of all files required to be in the current
  779. X> working directory of a user when a script is run.
  780. X> Used by
  781. X> .PR run
  782. X> to set up an independent local directory context for each simulated user.
  783. X> A typical example of an appropriate
  784. X> .FL Makefile
  785. X> entry might be
  786. X> .RS
  787. X> .nf
  788. X> .if t .HS
  789. X> manifest:
  790. X>     @echo mystuff.dat other data files
  791. X> .if t .HE
  792. X> .fi
  793. X> .RE
  794. X> .IP (d)
  795. X> \fBclean\fP : remove any unnecessary temporary files, e.g. those created from
  796. X> somewhere else during a ``make context''.
  797. X> .IP (e)
  798. X> \fBpurge\fP : kill off any background proceses and discard everything that
  799. X> cannot be recreated.
  800. X> Usually includes ``clean'' as a prerequesite.
  801. X> .IP (f)
  802. X> \fBmodes\fP : set appropriate file protection modes \- be especially careful
  803. X> of shell scripts that tend to lose their execute permissions when sent
  804. X> across the electronic mail-based networks.
  805. X> .RE
  806. X> .nr II 0
  807. X> .IP 5.
  808. X> Optionally create the filter
  809. X> .PR cleanstderr 
  810. X> to remove anticipated
  811. X> \fIstderr\fP output from the command interpreter, e.g. command prompts.
  812. X> Called by
  813. X> .PR cleanup .
  814. X> .PR ../mkscript.out
  815. X> also uses
  816. X> .PR cleanstderr
  817. X> (if it exists) and checks that no \fIstderr\fP residue remains after
  818. X> .FL script.out
  819. X> has been created.
  820. X> .IP 6.
  821. X> Optionally create a file called
  822. X> .FL DESCRIPTION
  823. X> that describes the particular workload environment being simulated.
  824. X> .PR run
  825. X> will use this file, if it exists, to annotate the log file of results.
  826. X> .NH 5 "The Complete Test"
  827. X> .LP
  828. X1152,1153c1341,1344
  829. X< login as root, choose another inactive terminal running at 9600 baud
  830. X< (/dev/ttyx below) and start the whole charade as follows.
  831. X---
  832. X> login as root, choose one or more other inactive terminals running at 9600 baud
  833. X> (/dev/ttyx below), select the appropriate workload if the multi-user
  834. X> test is to be run (Work_local below)
  835. X> and start the whole charade as follows.
  836. X1155,1157c1346,1349
  837. X< .SC "export tty"
  838. X< .SC "rm Report/log Report/log.work"
  839. X< .SC "./run &"
  840. X---
  841. X> .SC workdir=Work_local
  842. X> .SC "export tty workdir"
  843. X> .SC "rm -f Report/log Report/log.work"
  844. X> .SC "./run"
  845. X1160,1161c1352,1354
  846. X< users in the multi-user test, this takes about 5 hours to run!
  847. X< .NH 5 "What Does It All Mean?"
  848. X---
  849. X> users in the Workload multi-user test, this takes about 5 hours to run!
  850. X> .NH 6 "Other Goodies"
  851. X> .NH 6.1 "Alternative Multi-user Workloads"
  852. X1162a1356,1418
  853. X> The distributed source includes the following workload profiles.
  854. X> .IP (a)
  855. X> \fBWorkload\fP :
  856. X> the common distributed workload for a C program development environment.
  857. X> .IP (b)
  858. X> \fBWork_text\fP :
  859. X> a text processing workload (lots of
  860. X> .PR vi ,
  861. X> .PR nroff
  862. X> and
  863. X> .PR spell ).
  864. X> .IP (c)
  865. X> \fBWork_stress\fP :
  866. X> a system exerciser that includes some of the raw speed tests and selected job
  867. X> steps from the other workload profiles;  useful for
  868. X> shaking out system faults under normal to heavy simulated load.
  869. X> .NH 6.2 "Continuous System Exerciser"
  870. X> .LP
  871. X> The command procedure
  872. X> .PR Groan
  873. X> is intended to run assorted tests in a continuous mode.
  874. X> It starts with the raw speed tests (Section 3.1)
  875. X> and then runs each of the workload
  876. X> profiles in turn, over and over again.
  877. X> .LP
  878. X> The existence of the file
  879. X> .FL Tmp/nospeed
  880. X> may be used to by-pass all the raw speed tests that are
  881. X> performed only during the first major iteration of
  882. X> .PR Groan .
  883. X> .LP
  884. X> Similarly, if the file
  885. X> .FL Tmp/nogroan
  886. X> exists at the end of a major iteration,
  887. X> .PR Groan
  888. X> will terminate.
  889. X> .LP
  890. X> All the standard output chit-chat from
  891. X> .PR run
  892. X> is sent to the file
  893. X> .FL Tmp/log.groan .
  894. X> .NH 6.3 "Monitoring the Progress of the Multi-user Test"
  895. X> .LP
  896. X> The command procedure
  897. X> .PR progress
  898. X> produces a histogram displaying the relative progress of all simulated
  899. X> user job streams.
  900. X> It uses the command procedure and
  901. X> .PR awk
  902. X> script
  903. X> .PR qhisto
  904. X> to plot the histogram \-
  905. X> .PR qhisto
  906. X> is quite a useful little program in its own right!
  907. X> .NH 6.4 "Shipping the Source"
  908. X> .LP
  909. X> Use
  910. X> .PR mkdistrib
  911. X> to flatten out the directory structure and prepare shipping
  912. X> manifests; this is the converse action to
  913. X> .PR mkinstall .
  914. X> .NH 7 "What Does It All Mean?"
  915. X> .LP
  916. X1230,1234c1486,1489
  917. X< There is \fBno\fP reason to suspect that the distributed workload
  918. X< for the multi-user test (i.e. the files
  919. X< .FL Tmp/script.?
  920. X< and
  921. X< .FL Tmp/workload )
  922. X---
  923. X> There is \fBno\fP reason to suspect that any of the distributed workloads
  924. X> for the multi-user test (i.e. the contents of the
  925. X> .FL Work*
  926. X> directories)
  927. X1237c1492
  928. X< expected system usage.
  929. X---
  930. X> expected system usage (refer to Sections 3.2 and 4 above).
  931. X1278c1533,1535
  932. X< This is easy to fix by adding a list of more tty devices to the 
  933. X---
  934. X> This condition is detected by
  935. X> .PR ttychk
  936. X> and is easy to fix by adding a list of more tty devices to the 
  937. X1293a1551,1556
  938. X> .LP
  939. X> A MUSBUS newsletter is published at irregular intervals and
  940. X> details new release information, anecdotes and general benchmarking
  941. X> experiences.
  942. X> E-mail submissions or subscription requests should be sent to
  943. X> musbus-req@moncsbruce.oz.AU.
  944. End-of-File-Grunt
  945. if test 21465 -ne `cat 'update.025' | wc -c`
  946. then
  947.     echo 'shar: transmission error (expected 21465 characters)'
  948. fi
  949. echo 'x - update.026'
  950. if test -f 'update.026'
  951. then
  952.     echo 'shar: over-writing existing file update.026'
  953. fi
  954. sed 's/^X//' > update.026 <<'End-of-File-Grunt'
  955. X3c3
  956. X< # $Header: cleanup,v 3.5 87/06/22 14:40:45 kjmcdonell Beta $
  957. X---
  958. X> # $Header: cleanup,v 5.2 88/01/07 10:58:24 kenj Exp $
  959. X6a7
  960. X> bell=""
  961. X15c16
  962. X<     -a)    : abort
  963. X---
  964. X>     -a) : abort
  965. X21c22
  966. X<     echo  ; sleep 2 ; echo  ; sleep 2 ; echo 
  967. X---
  968. X>     echo $bell ; sleep 2 ; echo $bell ; sleep 2 ; echo $bell 
  969. X31c32
  970. X<     -f)    : filesystem throughput
  971. X---
  972. X>     -f) : filesystem throughput
  973. X37c38
  974. X<     -i)    : report last iteration
  975. X---
  976. X>     -i) : report last iteration
  977. X53c54
  978. X<     -m)    : mem throughput tests
  979. X---
  980. X>     -m) : mem throughput tests
  981. X59c60
  982. X<     -t)    : timing with /bin/time
  983. X---
  984. X>     -t) : timing with /bin/time
  985. X66a68,69
  986. X>     workdir=${workdir-Workload}
  987. X>     touch $worktmp        # thanks to Mark Hewitt, mjh%kernel.uucp@ukc.ac.uk
  988. X87,88c90,95
  989. X<     PS1=`sh -ic "" 2>&1`
  990. X<     sed -e "s/\\${PS1}//g" $worktmp | sed -f check.sed >loggederrs
  991. X---
  992. X>     if test -f $workdir/cleanstderr
  993. X>     then
  994. X>         $workdir/cleanstderr <$worktmp >${worktmp}a
  995. X>         mv ${worktmp}a $worktmp
  996. X>     fi
  997. X>     sed -f check.sed $worktmp >loggederrs
  998. X96c103
  999. X<         rm -f loggederrs
  1000. X---
  1001. X>     rm -f loggederrs
  1002. X101c108
  1003. X<     '')    : 'skip it (residual effect of shifts)'
  1004. X---
  1005. X>     '') : 'skip it (residual effect of shifts)'
  1006. End-of-File-Grunt
  1007. if test 1169 -ne `cat 'update.026' | wc -c`
  1008. then
  1009.     echo 'shar: transmission error (expected 1169 characters)'
  1010. fi
  1011. echo 'x - update.027'
  1012. if test -f 'update.027'
  1013. then
  1014.     echo 'shar: over-writing existing file update.027'
  1015. fi
  1016. sed 's/^X//' > update.027 <<'End-of-File-Grunt'
  1017. X#! /bin/sh
  1018. X# $Header: signature,v 5.2 87/12/09 16:49:25 kenj Exp $
  1019. Xtmp=/tmp/$$
  1020. Xworkdir=${workdir-Workload}
  1021. X
  1022. Xif test -f $workdir/script.master
  1023. Xthen
  1024. X    :
  1025. Xelse
  1026. X    echo "signature: cannot find $workdir/script.master"
  1027. X    exit 1
  1028. Xfi
  1029. X
  1030. Xecho "****"
  1031. Xtest -f $workdir/DESCRIPTION && sed 's/^/* /' $workdir/DESCRIPTION
  1032. X
  1033. Xsed \
  1034. X    -e 's/.*keyb.*| *//' \
  1035. X    -e '/.*keyb.*> *.*&/d' \
  1036. X    -e '/[a-zA-Z][a-zA-Z0-9]*=/d' \
  1037. X    $workdir/script.master \
  1038. X| awk '
  1039. XNR==1        { shell=$2; next }
  1040. X/^%%/        { if (head==0) head=tail+1; tail=0; next }
  1041. X/^%/        { next }
  1042. X        { num++; tail++
  1043. X          cmd=$1
  1044. X          if (length(cmd)>12) cmd=substr(cmd,1,12)
  1045. X          f[cmd]++
  1046. X        }
  1047. XEND        { for (cmd in f) print "     " f[cmd] "  " cmd >"'$tmp'"
  1048. X          print "*  Workload script profile: shell=" shell
  1049. X          print "*  " num " commands (header:" head-1 " & trailer:" tail ")"
  1050. X          print "* freq  command     freq  command     freq  command     freq  command"
  1051. X        }'
  1052. Xsort +0nr -1 $tmp \
  1053. X| pr -l1 -t -4 \
  1054. X| sed 's/^.../*  /'
  1055. X
  1056. Xecho "****"
  1057. X
  1058. Xrm -f $tmp
  1059. End-of-File-Grunt
  1060. if test 973 -ne `cat 'update.027' | wc -c`
  1061. then
  1062.     echo 'shar: transmission error (expected 973 characters)'
  1063. fi
  1064. echo 'x - update.028'
  1065. if test -f 'update.028'
  1066. then
  1067.     echo 'shar: over-writing existing file update.028'
  1068. fi
  1069. sed 's/^X//' > update.028 <<'End-of-File-Grunt'
  1070. X# $Header: Makefile,v 5.2 88/01/12 06:43:13 kenj Exp $
  1071. XDUMMY    = aa.1.dat aa.2.dat aa.3.dat aa.4.dat aa.5.dat aa.6.dat \
  1072. X    mm.1.dat mm.2.dat mm.3.dat mm.4.dat mm.5.dat mm.6.dat \
  1073. X    zz.1.dat zz.2.dat zz.3.dat zz.4.dat zz.5.dat zz.6.dat
  1074. XDATA    = cat.dat cctest.c dummy.c edit.dat edscr1.dat edscr2.dat \
  1075. X    grep.dat script.master
  1076. XOTHERPROGS = ../keyb
  1077. X
  1078. Xscripts:    script.1 script.out
  1079. X
  1080. Xscript.1:    ../mkscript ../mkperm ../fixPATH script.master
  1081. X    ../mkscript $${nscripts-4} script.master
  1082. X    ../fixPATH
  1083. X
  1084. Xscript.out:    ../mkscript.out script.1 cleanstderr
  1085. X    ../mkscript.out
  1086. X
  1087. Xcontext: $(DATA) $(DUMMY) $(OTHERPROGS) cleanstderr cctest.c DESCRIPTION
  1088. X
  1089. Xmanifest:
  1090. X    @echo $(DATA) $(DUMMY)
  1091. Xclean:
  1092. X    rm -f $(DUMMY) core workload cctest.c *.bad
  1093. X    rm -rf .tmp
  1094. X
  1095. Xpurge:    clean
  1096. X    rm -f script.? script.out
  1097. X
  1098. Xmodes:
  1099. X    chmod 555 cleanstderr
  1100. X
  1101. Xcctest.c:    ../cctest.c
  1102. X    ln ../cctest.c .
  1103. X../keyb:
  1104. X    cd .. ; make keyb
  1105. X../mkperm:
  1106. X    cd .. ; make mkperm
  1107. X
  1108. X$(DUMMY):
  1109. X    touch $@
  1110. X
  1111. X.DEFAULT:
  1112. X    co RCS/$@,v
  1113. End-of-File-Grunt
  1114. if test 942 -ne `cat 'update.028' | wc -c`
  1115. then
  1116.     echo 'shar: transmission error (expected 942 characters)'
  1117. fi
  1118. echo 'x - update.029'
  1119. if test -f 'update.029'
  1120. then
  1121.     echo 'shar: over-writing existing file update.029'
  1122. fi
  1123. sed 's/^X//' > update.029 <<'End-of-File-Grunt'
  1124. XCommon Distributed Workload for a C Program Development Environment
  1125. End-of-File-Grunt
  1126. if test 68 -ne `cat 'update.029' | wc -c`
  1127. then
  1128.     echo 'shar: transmission error (expected 68 characters)'
  1129. fi
  1130. echo 'x - update.030'
  1131. if test -f 'update.030'
  1132. then
  1133.     echo 'shar: over-writing existing file update.030'
  1134. fi
  1135. sed 's/^X//' > update.030 <<'End-of-File-Grunt'
  1136. X%W% /bin/sh -ie
  1137. XPATH=XXX:$PATH
  1138. Xexport PATH
  1139. Xmkdir /tmp/$$ tmp
  1140. X%% 1 edit
  1141. Xkeyb edscr1.dat | ed edit.dat
  1142. Xchmod u+w temporary
  1143. Xrm temporary
  1144. X%% 2 ls
  1145. Xls -l
  1146. X%% 3 cat
  1147. Xcat cat.dat
  1148. X%% 4 compile
  1149. Xcc -c cctest.c 1>&2
  1150. Xrm *.o
  1151. X%% 5 edit, compile and link
  1152. Xchmod 444 dummy.c
  1153. Xkeyb edscr2.dat | ed dummy.c
  1154. Xcc dummy.c 1>&2
  1155. Xrm a.* grunt.c
  1156. X%% 6 grep
  1157. Xgrep '[     ]*nwork' grep.dat
  1158. X%% 7 file copying
  1159. Xcp *.c edit.dat /tmp/$$
  1160. Xcp /tmp/$$/* tmp
  1161. X%%
  1162. Xrm -rf tmp /tmp/$$
  1163. End-of-File-Grunt
  1164. if test 433 -ne `cat 'update.030' | wc -c`
  1165. then
  1166.     echo 'shar: transmission error (expected 433 characters)'
  1167. fi
  1168. echo 'x - update.031'
  1169. if test -f 'update.031'
  1170. then
  1171.     echo 'shar: over-writing existing file update.031'
  1172. fi
  1173. sed 's/^X//' > update.031 <<'End-of-File-Grunt'
  1174. X#! /bin/sh
  1175. X# Clean prompt stuff from standard error output in multi-user test.
  1176. X# Called from ../cleanup
  1177. X# $Header: cleanstderr,v 5.2 87/12/09 09:38:11 kenj Exp $
  1178. X
  1179. XPS1=`/bin/sh -ic "" 2>&1`
  1180. Xsed \
  1181. X    -e "s/\\${PS1}//g" \
  1182. X    -e '/^cctest.c$/d' \
  1183. X    -e '/^dummy.c$/d' \
  1184. X    -e '/^[     ]*$/d'
  1185. End-of-File-Grunt
  1186. if test 289 -ne `cat 'update.031' | wc -c`
  1187. then
  1188.     echo 'shar: transmission error (expected 289 characters)'
  1189. fi
  1190. echo 'x - update.032'
  1191. if test -f 'update.032'
  1192. then
  1193.     echo 'shar: over-writing existing file update.032'
  1194. fi
  1195. sed 's/^X//' > update.032 <<'End-of-File-Grunt'
  1196. X# $Header: Makefile,v 5.2 88/01/12 06:46:44 kenj Exp $
  1197. XDATA    = big.txt viscr1.dat viscr2.dat small.txt big.spell ttytype
  1198. XOTHERPROGS = ../keyb map_pty termname
  1199. X
  1200. Xscripts:    context script.out
  1201. X
  1202. Xscript.1:    ../mkscript ../mkperm ../fixPATH script.master
  1203. X    ../mkscript $${nscripts-6} script.master
  1204. X    ../fixPATH -w
  1205. X
  1206. Xscript.out:    ../mkscript.out script.1 cleanstderr
  1207. X    ../mkscript.out
  1208. X
  1209. Xcontext: $(DATA) $(OTHERPROGS) script.master DESCRIPTION README
  1210. X
  1211. Xmanifest:
  1212. X    @echo $(DATA)
  1213. X
  1214. Xclean:
  1215. X    rm -f core *.bad term temporary USER
  1216. X    rm -rf .tmp
  1217. X
  1218. Xpurge:    clean
  1219. X    rm -f termname termname.o script.? script.out big.spell ttytype
  1220. X
  1221. Xmodes:
  1222. X    chmod 555 cleanstderr map_pty
  1223. X
  1224. Xtermname:    termname.c termname.o
  1225. X    cc $(CFLAGS) -o termname termname.o
  1226. X
  1227. Xttytype:
  1228. X    echo "/dev/tty00 vt100" >ttytype
  1229. X
  1230. Xbig.spell:    big.txt
  1231. X    spell big.txt >big.spell
  1232. X
  1233. X../keyb:
  1234. X    cd .. ; make keyb
  1235. X
  1236. X../mkperm:
  1237. X    cd .. ; make mkperm
  1238. X
  1239. X.DEFAULT:
  1240. X    co RCS/$@,v
  1241. End-of-File-Grunt
  1242. if test 883 -ne `cat 'update.032' | wc -c`
  1243. then
  1244.     echo 'shar: transmission error (expected 883 characters)'
  1245. fi
  1246.